# def wrapper(f):
# 	def inner(*args,**kwargs):
# 		print(111)
# 		ret = f(*args,**kwargs)
# 		print(222)
# 		return ret
# 	return inner
#
# @wrapper  # func = wrapper(func)
# def func():
# 	print('in func')
# func()
# 编写装饰器,在每次执行被装饰函数之前打印一句’每次执行被装饰函数之前都得先经过这里,这里根据需求添加代码’。
def wrapper(f):
	def inner(*args,**kwargs):
		print('每次执行被装饰函数之前都得先经过这里,这里根据需求添加代码')
		ret = f(*args,**kwargs)
		return ret
	return inner
@wrapper  # func = wrapper(func)
def func():
	print('in func')
func()

# 为函数写一个装饰器，把函数的返回值 +100 然后再返回。
def wrapper(f):
	def inner(*args,**kwargs):
		ret=f(*args,**kwargs)
		print(ret)
		return ret+100
	return inner
@wrapper#func=wrapper(func)  =   inner
def func():
	return 7
result=func()
print(result)

# 请实现一个装饰器，通过一次调用是函数重复执行5次。
def wrapper(f):
	def inner(*args,**kwargs):
		for i in range(5):
			ret=f(*args,**kwargs)
		return ret
	return inner
@wrapper
def func():
	print('in func')

func()










